module hip.hiprenderer.backend.metal.defaultshaders; import hip.api.renderer.core; import hip.config.renderer; private enum MetalDefaultShadersPath = __MODULE__; static if(!HasMetal) { immutable DefaultShader[] DefaultShaders; } else: immutable DefaultShader[] DefaultShaders = [ HipShaderPresets.DEFAULT: DefaultShader(MetalDefaultShadersPath, &getDefaultVertex, &getDefaultVertex), HipShaderPresets.FRAME_BUFFER: DefaultShader(MetalDefaultShadersPath, &getFrameBufferVertex, &getFrameBufferFragment), HipShaderPresets.GEOMETRY_BATCH: DefaultShader(MetalDefaultShadersPath, &getGeometryBatchVertex, &getGeometryBatchFragment), HipShaderPresets.SPRITE_BATCH: DefaultShader(MetalDefaultShadersPath, &getSpriteBatchVertex, &getSpriteBatchFragment), HipShaderPresets.BITMAP_TEXT: DefaultShader(MetalDefaultShadersPath, &getBitmapTextVertex, &getBitmapTextFragment), HipShaderPresets.NONE: DefaultShader(MetalDefaultShadersPath) ]; private { string getDefaultFragment(){return "";} string getFrameBufferFragment(){return "";} string getGeometryBatchFragment(){return "";} string getSpriteBatchFragment(){return "";} string getBitmapTextFragment(){return "";} string getDefaultVertex(){return string.init;} string getFrameBufferVertex(){return import("metal/framebuffer.metal");} string getGeometryBatchVertex(){return import("metal/geometrybatch.metal");} string getSpriteBatchVertex(){return import("metal/spritebatch.metal");} string getBitmapTextVertex(){return import("metal/bitmaptext.metal");} }